The present invention relates most generally to color correction of computer peripheral devices, and more particularly to a color profiling system for a printer and scanner.
Color is defined as the perceptual result of light in the visible region of the spectrum. The human retina has three types of color photoreceptor cells for illumination, therefore, it is possible to define color using only three numerical components.
The Commission Internationale de L""Eclairage (CIE) created a standardized system for representing color illuminations using three numerical components to represent the mathematical coordinates of color space. The colors produced by reflective systems are a function not only of the colorants but also of the ambient illumination that requires further spectral matching. The most familiar color systems include CIE XYZ, CIE xyY, CIE L*u*v* and CIE L*a*b*.
The CIE system is based on the description of color as luminance component Y and spectral weighting curves components X and Z. The spectral weighting curves for X and Z were standardized by the CIE based on statistics from experiments involving human observers. The magnitudes of the XYZ components are proportional to physical energy, but their spectral composition corresponds to the color matching characteristics of human vision.
Most devices employ a device-dependent color-coordinate system to specify the colors, and there are several different systems in the market. The coordinate system is defined in a color space that maps the color coordinates to the color mechanism used by the device. Color space refers to an N-dimensional space in which each point in the space corresponds to a color. The cyan (C), magenta (M), yellow (Y) and black (K) (CMYK) color space is commonly used for color printers, where each point in the CMYK color space corresponds to a color produced using a formula for the CMYK colorants. The color space could be represented solely by CMY, but black is added as a colorant for print matter for several reasons. Printing black by overlaying cyan, yellow and magenta ink is expensive and time-consuming, and the edges of the lettering tend to blur. The printing of three ink layers to produce black also causes the printed paper to become wet requiring more time to dry.
The red, green and blue (RGB) system is a color space system that is complementary to the CMYK color space. The RGB system is a three-dimensional color space wherein each point in the color space is formed by some combination of RGB colorants. The RGB system is typically used for computer monitors, TV screens and scannersxe2x80x94illuminating devices.
The term color gamut is used to refer to a range of colors that can be produced within a color space by a particular device from a set of colorants. The color gamut of a device corresponds to the visible colors that can possibly be produced by the device.
A digitized color image is represented as an array of pixels, wherein each pixel contains numerical components that define a color. The three components are required to represent an image, and printing necessitates a fourth component, namely black. Color printers and color copy machines typically use three or four colorants, such as CMYK to produce the color image. The combination mix and density of the colorants produce a wide array of shades and colors.
While the three numerical values for digitized images could be provided by a color specification system, the color coding systems require faster processing. Several other systems have developed for image coding, including linear RGB, nonlinear Rxe2x80x2Gxe2x80x2Bxe2x80x2, nonlinear CMY, nonlinear CMYK, and derivatives of nonlinear Rxe2x80x2Gxe2x80x2Bxe2x80x2 such as Yxe2x80x2CBCR. RGB values can be transformed to and from the CIE XYZ values by a three-by-three matrix transform.
A scanner is used for converting print mediums such as pictures, artwork, documents, transparencies, and photographs into an electronic format. The scanner captures an image by measuring colors reflected from or transmitted through an image at many points and assigns numerical values to the colors at those points. Normally, the scanned image is represented as digital data, called pixels, in a Red-Green-Blue (RGB) representation. The pixels are arranged into a table of rows and columns, and contain information about the image such as the color information for a particular pixel defined as some formula of the primary colors R-G-B. Some scanners convert the RGB values to CMYK values.
The reproduction of color information from multiple devices and varying environments is a common occurrence in the industry. Colored works are transferred among variety of peripheral devices and the color information processing systems within the various systems seek to ensure the accuracy of the original work. For example, a computer with a color monitor can interact with a colored printer, a scanner, digital camera, color copy machine, color facsimile and various other devices. As the color data passes from one medium to another, digital processing attempts to maintain a visual match within the capabilities of the devices.
Advances in technology and computing means have made color reproduction systems available to the general public. Many desktop publishing systems employ hardware and software that are affordable to users that need to produce quality color work products. Unfortunately, the concept of xe2x80x98What you see is what you getxe2x80x99 is normally lacking, and it is not uncommon to see the desired image on the monitor but produce a print product that lacks the quality characteristics desired.
Colors produced by two different devices based on the same input will differ, in part because of distortion of the signals which occur due to nonlinear response characteristics of the electronics of the devices and the method of selecting a color within a device color gamut. An input signal representing a particular color provided to two different devices typically results in the devices producing two different colors. This is true even when the input signal represents a color within the color gamuts of both of devices.
In order to accomplish accurate color transfer, the individual devices employ color calibration techniques. Calibration is necessary to set the color response of the color reproduction devices. The process of deriving a transform by comparing the device output to some reference output and generating a lookup table is called system color calibration. A transform derived for a particular scanner-printer combination is referred to as a closed system and the process is called closed system color calibration.
The purpose of the calibration is to account for the color differences. The color differences actually refers to numerical differences between the color specifications and more specifically refers to the perception of color differences in XYZ or RGB. Perceptual uniformity concerns numerical differences that correspond to color differences at the threshold of perceptibility. A perceptually uniform system is one where a small change to a component value is equally perceptible across the entire range. XYZ and RGB systems are not perceptually uniform and are actually highly nonuniform. In order to transform XYZ into a uniform standard, two systems developed, L*u*v* and L*a*b*, also written CIELUV and CIELAB. L*u*v* and L*a*b* improve perceptual nonuniformity but require highly complex computations to accommodate real-time display.
In most cases, an initial factory calibration creates calibration tables that are used by the digital processing schemes to make the color reproduction devices conform to standards and to compensate for drift and other changes.
Various instruments and methods are used to calibrate devices for color reproduction, including densitometers and colorimeters. A densitometer measures the density of ink on a print patch in each of CMYK colorants. The densities are then compared to a scale of desired densities to produce calibration curves. The data from the calibration curves is used to correct the device so that it more closely resembles the scale data.
A colorimeter measures CIE values of color on a scale of printed patches in each of the CMYK print colorants. The measured CE values are then compared with a corresponding scale of desired values to obtain calibration curves, which correct the device so that is more closely resembles the scale data.
In the field of desk top publishing, it is common to have a scanner device as part of the office equipment rather than a densitometer or calorimeter. It is therefore convenient to use the scanner to calibrate the printer. The prior art describes using a scanner as a calibrating device, wherein the scanner scans a print target and measures the densities of ink deposited on the target. The system measures the densities or calorimetric values of the color samples generated by a printing device.
Although the scanner is more convenient that using the other calibration devices, the quality is usually lacking. Scanners operate on a linear sensitivity scale, not a logarithmic density scale. Based on scanner deficiencies, the tonal and spectral scanner outputs vary even when measuring the same colored object. Thus, not only would similar scanners produce different results, but the same scanner suffers from degradation of performance over time.
To accomplish calibration between a printer and scanner, a transform is used in a digital image processor that maps the color signals of the scanner to the printer color signals so that the color reproduction system reproduces the colors present of the original images. Often the transform is implemented by employing a three dimensional lookup table (LUT).
One method to calibrate a color reproduction system includes using the color scanner, a processor, and a color printer. This requires transforming the color space environments. A first color transform is used to convert the scanner color signals, such as RGB signals, into color signals in a device independent color space. The second transform is used to convert color signals from the device independent color space to printer color signals such as CMYK signals.
It is possible to combine the two transforms into one function implemented by the processor that directly converts scanner color signals into printer color signals. The transformations are typically implemented by storing calibration values in a three or four-dimensional LUT and using a linear interpolation method to interpolate between values in the lookup table.
A typical printer and scanner calibration involves printing a set of color patches on the printer, measuring the color patches using an optical instrument and using a mathematical method such as regression to derive the printer transform based on the measured data. The calibration continues by scanning a set of test patterns, measuring the test patterns using an optical instrument and employing a mathematical method such as regression to then derive the scanner transform.
There are ways to decrease the time required to calibrate, including using a smaller number of sample points. This creates a lookup table that is much smaller and easier to search during the mathematical manipulations, however the accuracy during interpolation is much lower.
Another prior art approach is to sample a cube in the printer color space. For example, an RGB cube in the printer color space may be uniformly sampled along the R, G and B axis to provide a discrete set of printer color coordinates which are stored in a computer. These color coordinates are provided to a printer that prints color patches corresponding to the specified color coordinates.
The printed color patches are subsequently fed to a scanner and scanned to provide a set of scanner color coordinates that is a subset of the entire space of color coordinates of the scanner. Thus, a direct correspondence is obtained between the set of stored printer color coordinates and the set of scanned color coordinates.
The terms calibration, characterization and profiling are sometimes incorrectly used interchangeably. For purposes of this application, the terms are distinguished herein. Calibration refers to the process of deriving a transform by comparing a device output to some reference output and generating a lookup table. This is a device dependent process. Calibrating a device returns the device to some normalized, standard, and predictable state. Therefore, calibrating a monitor, a scanner or a printer alters the behavior of that device.
Profiling, also called characterizing or describing is really a description of the color capabilities of the device. Profiling measures the device properties and transforms the properies into some usable form as part of a color management system. Profiling does not change the behavior of that device as with calibration, but rather compliments the calibration. However, it does not preclude the need to calibrate individual devices to ensure that the process that created the characterization remains consistent.
Because some coloration inaccuracies are introduced when switching between different color spaces, device profiling is useful to correct such inaccuracies. Device profiling measures the inaccuracies and corrects them in a device-independent color space (LAB). By working in the device independent LAB environment, improved color conversions between devices is possible.
To generate a profile, software is used to determine the device""s full color range capabilities. The gamut of the device is determined by measuring the calorimetric values for a set of known color patches or targets. The measured data is then used to generate a custom profile for the device. The profiles are then applied to an image data to compensate for any transformation inaccuracies.
The International Color Consortium (ICC) created a standardized system for describing the color-rendering capabilities of any device. The ICC profile defines the gamut of the device, and a measure of the color distortion. The ICC profile actually has two components, the first element contains hardware data about the device, and the second element is the colorimetric device characterization data that defines the manner in which the device establishes color.
The profiles are used in conjunction with the other color-management engine and the application programs that use the profiles. The generic profiles provided by the manufacturer are often based on a perfectly calibrated device, and do not generally provide the accuracy required in modern systems. Therefore, custom profiles are utilized to enhance the factory profiles and provide more accurate color reproductions.
The purpose of profiling is to accurately define the reproducible and repeatable gamut of a device. This is accomplished by using a reference target on the device and measuring the device""s reproduction values Software is used to build a transform that maps scanner color space values to device independent color values. The transform is typically built by using a mathematical technique such as the least squares algorithm with the reference data and measured data.
A typical scanner profiling process involves scanning a reference target that has numerous color patches. IT8 is one such reference standard. Software is used to compare the color reference values that accompany the target with the measured values. The entire process is a comparison of reference data and measured data.
Some profiling packages only profile a scanner""s raw color space while others create a corrective profile, wherein a scanner driver uses the ICC profiles of the device to incorporate the physical limitations of the device in the processing.
Printers are more difficult and time-consuming to profile because they do not emit light and require another device, properly calibrated, to measure the color data. The printer prints a target that contains the color patches. The printout is measured by a color measuring device, such as a spectrophotometer, and software uses the measured values to build a transform that maps device independent colors to the printer""s color space. Various factors effect the printer color values, including paper stock, ink, temperature, and pressure, so other variable and calculations are required for processing.
The typical custom profile is produced by comparing measured color values against reference values. For example, a scanner profile is produced by scanning a color target, wherein the profiling application converts the scanned data into device independent values. The device independent values are compared to the CIE values for the reference target, and a custom profile is created to correct any deficiencies. The reference target is normally the industry-standard IT8 target that contains 264 color patches plus 24 shades of gray.
Printers are more difficult and time-consuming to profile because they do not emit light and require another device, properly calibrated, to measure the color data. The profiling software compares the measured data to the target values and produces the correction data. By comparing the measured colors with the color values, a custom profile is developed.
A color management system comprises interconnected devices such as a scanner, monitor, printer, and computer, with a software application that handles the color reproduction between the application and various color devices. The system interacts with the processing means and the memory means of the system to control the devices, process transformations, and store data. The software performs the color transformations to exchange accurate color between diverse devices, in various color coding systems including RGB, CMYK and CIEL*a*b*. In theory, the color management system evaluates capabilities of the system and devices and determine the appropriate color device and color space. However present systems have significant difficulties implementing such s system in a commercially feasible manner.
There have been various attempts at creating cost-effective and quality color calibration systems that address the aforementioned problems. U.S. Pat. No. 5,185,673 (""673) describes a closed loop system that calibrates a scanner to a printer. The calibration profile created by the system resides in the scan driver so the scanned images are pre-calibrated for the specified printer. The calibration profile is created by the following steps:
1. The scan driver creates an image with color patches.
2. This image is passed through the printer path until the color patches are printed.
3. These color patches are scanned by the scanner.
4. The system builds a profile that maps desired RGB values to RGB values that when printed will actually produce the desired RGB values.
5. This profile is then applied to all images scanned for the desired printer.
This calibration scheme has the disadvantage of forcing the user to work with images that are calibrated for a particular printer. For correct screen viewing the images must be translated from printer space to monitor space. Images that were scanned for one printer will not work with another printer, as the data is device dependent. Even images scanned for the same printer will become incompatible if the paper type, ink type, or some other variable is changed.
There are additional problems with the system described in the ""673 patent. The scanner is not profiled, and as known in the industry, quality results requires that the scanner be properly profiled. Also, the color space of the printer is not RGB, and printers often have poor internal profiles that result in the printing of RGB images that look very poor on the screen.
The present invention is distinguishable because it profiles both the scanner and the printer individually and is not truly a closed loop system. The system produces two profiles: a scanner profile and a printer profile. Both profiles translate to and from a device independent color space, thus images from the scanner are independent of any device that is attached to the printer and images that go to the printer are independent of the printer. Images from the scanner can be printed on many different printers and images from many sources can be printed on the printer.
Similarly, U.S. Pat. No. 5,491,568 (""568) describes a closed loop system where the scanner output is mapped to a printer input. The primary difference is in the implementation details, but the ""568 has the same inherent problems as the ""673 invention. The steps of the ""568 patent are:
1. Determine the relationship between equal printer color signals and averaged scanner color signals.
2. Produce a set of color patches uniformly distributed in scanner color space on the printer.
3. Scan the patches with the scanner.
4. Produce a look-up table from printer to scanner.
5. Invert the look-up table to go from scanner to printer.
U.S. Pat. No. 5,809,213 presents a system that is similar to both the ""568 and ""673 systems. It uses a scanner and printer to calibrate the path from the scanner to the printer. It includes non-linear interpolation and gamut mapping techniques. As with the other systems, it does not solve the problem of accurately calibrating the scanner that would likely result in color reproduction problems.
A color matching system that uses a device independent color space to map colors from one device to another under different viewing conditions is shown in U.S. Pat. No. 5,754,184. Similar systems are common and supported by the industry standard ICC specification.
In U.S. Pat. No. 5,760,913 (""913) a system that calibrates a printer by using the scanner as a densitometer is discussed. The scanner is used as a densitometer by scanning an image with known densities and building a look-up table that translates RGB values to density. Patches composed of separate inks at different levels are printed and measured by the scanner. These measurements are then used to calibrate the printer.
The ""913 system does not actually characterize a printer. The ""913 system uses the scanner to return a printer to a known state so a pre-built table will function correctlyxe2x80x94a calibration function. In distinction, the system of the present invention uses the data from the scanner to actually build the types of tables that accurately reproduce the color values.
In the ""913 patent a simultaneous scanning method is described wherein the printed calibration image and the gray scale test strip are scanned simultaneously to overcome scan to scan error and to reduce the number of user steps in the calibration process. One of the distinctions between the ""913 method and the present invention method is that the patches measured by the ""913 system can only be used to re-calibrate the devices, not fully characterize the devices like the present invention.
U.S. Pat. No. 5,271,096 (""096) describes a method of adjusting the calibrations of a scanner and a printer by scanning in calibration images and comparing the scanned data to previous data. In this embodiment the system first scans a calibration target with known color values, compares the scanned values with the known values and produces calibration data. Then it prints calibration patches, scans the patches, and compares the scanned patches to previously printed patches and produces calibration data. Finally, it combines the two sets of calibration data to produce data that calibrates both the printer and scanner.
A fundamental difference between the ""096 system and the present invention is that the ""096 patent compares calibration data when calibrating a printer. The present system produces a printer profile by understanding how the printer produces a particular color and then building a table that allows that color to be printed. The ""096 system also has no simultaneous scanning or compensation table.
Other commercial products have tried to alleviate the aforementioned problems. The company X-Rite displayed a public a color calibration system that uses the combination of a color measurement device such as a spectrophotometer and a scanner to calibrate a printer. With this system, color patches were first printed with a printer. A very small number of the patches were then read with the measurement device and then the entire set of patches was read with the scanner. The patches that were read with the measurement device and the scanner was used to calibrate the scanner and the calibration of the scanner was then used to modify the entire patch set so that a printer calibration could be made.
The X-Rite system has the advantage of calibrating the scanner and printer with just one scan and also calibrating the scanner to the printer. However, the X-Rite system requires the use of an expensive measurement device. In addition, the X-Rite system also had the disadvantage of calibrating the scanner only to the printer, not with more common photographic materials or reflective works.
Providing efficient and accurate color reproduction remains a problem because of numerous difficulties described herein. What is needed is a practical and simple means to produce a printer profile. There should be a color reproduction system that provides reproduced colors that match the original colors. This system would provide color matching to be performed between a scanner and a printer without the use of expensive additional photometric equipment such as a spectrophotometer. The profiling results should be device independent so that the equipment can be substituted. The profiling should also be preformed in a single step to reduce the time required for profiling and to avoid any scanner-setting errors.
The purpose of the invention is to provide a color reproduction system that addresses the aforementioned problems. The present invention produces accurate printer ICC profiles from a scanner. The present system also produces a scanner ICC profile, however the scanner profile is not a requirement of the invention. A scanner profile is created that can be used to process images intended for any output device. A printer profile is created that can be used to print images from any source. Using a scanner compensation table allows any scanner to function more closely to a spectrophotometer and ensures more accurate color data collection than can normally be obtained from a scanner.
Another object of the invention is to scan the scanner calibration target at the same time as the printer calibration target, and use these targets to fully calibrate both the scanner and printer. Scanning both targets simultaneously significantly reduces scanner-setting errors, ensures the color data in both targets is measured under identical conditions, and decreases the profiling process.
An object of the invention is the compensation color transform that improves the quality of the color reading produced by the scanner. The compensation transform compensates for the difference between how a scanner scans a photographic target and how it scans a printed target. Photographic and printed materials all have unique spectral properties that a scanner is sensitive to and can measure. The differences between photographic and printed materials are often large enough to cause a scanner that has been properly calibrated for photographic material to misread printed material. The algorithms of the present invention map the same RGB value from a scanner to different CIEL*a*b* values when the RGB values come from patches with different ink values.
An object of the invention is a scanner system comprising a physical scanner, scanner driver software, scanner ICC profile, central processing unit (CPU), storage means, monitor, printer, printer driver, printer ICC profile, profiling application, sets of compensation transforms, an IT8 photographic target, and a print target printed by the printer, wherein the scanner ICC profile is produced by the compensation transforms. The print target and photograph target are scanned simultaneously and the profiling algorithms calculate accurate printer ICC profiles.
An object of the present invention is a method of profiling, comprising the steps of printing a print target, placing and IT8Q60 scanner target onto the print target to produce a combined target, scanning the combined target, processing the scanner data to produce a scanner ICC profile, processing the printer data to produce device independent color values, selecting a compensation transform, and building a printer ICC profile.
Additional object is the generation of a scanner profile that can be used to process images intended for any output device. Furthermore, a printer profile is created that can be used to print images from any source.
Yet another object is the use of a scanner compensation table that allows any scanner to function more closely to a spectrophotometer and ensures more accurate color data collection than can normally be obtained from a scanner.
An object of the invention includes scanning both the reference target and the print target simultaneously thereby reducing scanner-setting errors and ensuring the color data in both targets is measured under identical conditions. Scanning simultaneously, these targets can be used to fully calibrate both the scanner and printer.
Another object of the invention is a method of creating a compensation transform that uses the least squares algorithm to solve the equation y=Ax where x is an array of CIELAB values from the calibrated scanner, y is an array of compensated CIELAB values, and A is a matrix that transforms between x and y. The x array currently contains non-linear combinations of the CIELAB values. The array x is defined as:
x[0]=L
x[1]=a
x[2]=b
x[3]=L2 
x[4]=a2 
x[5]=b2 
x[6]=La
x[7]=Lb
x[8]=ab
x[9]=L3 
x[10]=L2a;
x[11]=L2b;
x[12]=La2;
x[13]=Lab;
x[14]=Lb2;
x[15]=a3;
x[16]=a2b
x[17]=ab2;
x[18]=b3;
The matrix A is computed by using the calibrated scanner and spectrophotometer data with the least-squares algorithm.
A further object of the invention is another method of creating the compensation table that takes into account the fact that scanners read different inks and paper types differently. A printer with more than three inks is generally capable of printing exactly the same color with more than one different combinations of ink. Unfortunately, these different ink combinations may not be read the same by a scanner because of the spectral differences of the inks. In addition, the scanner can see different colors as the same because of the differences in the inks. This embodiment of the compensation transform uses different transforms for different combinations of inks and takes advantage of the fact that the ink values for each patch in the print target are known.
A further object is to provide a color reproduction system suitable for the graphic arts, such as printings, sign making, and color correction, and also for medical imaging, and color imaging applications.
An additional object is a method of profiling a color printer using a scanner comprising the steps of printing a print target on said color printer, placing a reference target onto the print target to produce a combined target, and scanning the combined target on the scanner to produce a scanned image. The scanned image comprises reference target data and print target data. Processing the reference target data produces a scanner profile, and processing the print target data with the scanner profile produces an uncompensated printer profile data. The next step requires adjusting the uncompensated printer profile data using a compensation transform. Finally, building a printer profile and storing the printer profile.
A further object wherein the printing is performed without using a printer profile so a full gamut is achieved.
Another object wherein the reference target is an IT8.
Yet a further object wherein the compensation transform is processed using the least squares algorithm.
An additional object wherein the compensation transform compensates for ink differences. This is crucial for the present invention to produce the compensation transform. A further object compensates for paper differences.
An object includes manually cropping the combined target or automatic cropping of the combined target.
A further object is for inputting data for the compensation transform, wherein such data represents the user""s device type, paper type and/or ink type.
Another object is wherein the uncompensated printer profile data is expressed as device independent colorspace values.
An object of the invention is a method of producing compensation transforms comprising the steps of generating a plurality of color reference patches, scanning the patches to produce scanned color space values, measuring the patches with an optical measuring device to produce measured color space values, creating a compensation table from the scanned color space values and the measured color space values.
Yet another object is a method, wherein the compensation transform for CMYK inks with linear interpolation is processed using the formula y=af0(x)+(1xe2x88x92a)f1(x).
An object includes an optical measuring device that is a spectrophotometer.
An object of the invention is for a color profiling system for producing a device independent printer profile comprising a printer section having a printer driver and a printer device, wherein said printer device prints a print target. A scanner section having a scanner driver and a scanner device. A combined target with the print target and a reference target, wherein the combined target is scanned by the scanner device to produce a combined target data. A processing section for processing the combined target data, wherein the processing section produces a scanner profile and uncompensated printer color patch readings in device independent colorspace values. A compensation transform module for transforming the uncompensated printer color patch readings into compensated printer color patch readings. A processing section for processing the compensated printer color patch readings into a printer profile.
Still other objects and advantages of the present invention will become readily apparent to those skilled in this art from the following detailed description, wherein only a preferred embodiment of the invention is described, simply by way of illustration of the best mode contemplated for carrying out the invention. As will be realized, the invention is capable of other and different embodiments, and its several details are capable of modifications in various obvious respects, all without departing from the invention.